This invention relates to interfaces between bus systems of computer devices, and more particularly, to PCI bridge configurations having portions provided at physically separate locations.
The transfer of information within a computer system is handled by one or more buses. A typical computer system includes a number of devices, or agents, such as microprocessors, display devices, storage devices and input/output devices. One or more system buses are used to interconnect these agents in order to transfer control, address and data signals. More recently, computer systems have employed multiple buses, with individual agents being couple to one of the buses.
Multiple-bus computer systems utilize bus bridges in order to connect together the buses such that agents on one bus can couple to agents on another bus. Accordingly, bus bridges provide an interface between two bus systems which enable the connection between subsystems of a computer system. One example involves coupling together a processor and an expansion bus of a computer system via a bus bridge.
One type of bus that has recently become popular is the peripheral component interconnect (PCI) local bus. The PCI bus was designed to place agents, or peripheral components, in closer electrical proximity with a central processing unit so as to improve system performance for graphics, network and multimedia applications.
FIG. 1 illustrates a prior art computer system 30 having a conventional PCI bus bridge 10 coupled between a primary PCI bus 12 and a secondary PCI bus 14. According to one implementation, primary PCI bus 12 is a processor bus and secondary PCI bus is an I/O bus. However, it is understood that bridge 10 can couple together any two buses 12 and 14, not merely a processor bus and an I/O bus.
PCI bus bridge 10 includes a primary PCI interface 16, a secondary PCI interface 18, configuration registers 20 and first-in-first-out (FIFO) queues 22 and 24. An agent 26 is coupled to primary PCI bus 12 and another agent 28 is coupled to secondary PCI bus 14. In use, configuration registers 20 operate as a temporary storage buffer for storing data that is being transferred between buses 12 and 14. FIFO queue 22 is used to store requests that are issued on primary PCI bus 12 and target an agent 26 on bus 12. Similarly, FIFO queue 24 is used to store requests that are issued on secondary PCI bus 14 and target an agent 28 on bus 14. As shown in FIG. 1, the status of FIFO queues 22 and 24 are available to both primary PCI interface 16 and secondary PCI interface 18 at all times.
In operation, the configuration registers 20 are written and read by primary PCI bus 12. Registers 20 control the behavior of primary PCI interface 16, secondary PCI interface 18 and FIFO queues 22 and 24. However, the primary PCI bus 12 and secondary PCI bus 14 cannot be physically separated apart since the configuration registers 20 are loaded via primary PCI bus 12, and serve to control the action of both primary PCI bus 12 and secondary PCI bus 14. Such inability to separate PCI bus bridge 10 between two buses 12 and 14 reduces the number of available applications. For example, such PCI bus bridge 10 cannot be used to couple a notebook computer having a PCI bus with a docking station having a second PCI bus.
Therefore, there exists a need to provide for a PCI bus bridge that enables physical separation between a primary PCI bus and a secondary PCI bus.
An apparatus and a method are provided for configuring a PCI bus bridge between two physically separate locations via two portions, or halves, of a physically separable PCI bus bridge. A latency inducing bus which introduces a period of latency is used to connect the two halves of the PCI bus bridge. Two sets of redundant configuration registers are provided, one set in the primary side of the bridge and another set in the secondary side of the bridge. Furthermore, four types of configuration registers are provide in the PCI bus bridge. First, registers are provided that exist only in the primary side of the bridge. Secondly, registers are provided that exist only in the secondary side of the bridge. Thirdly, registers are provided that exist as read/write registers in the primary side of the bridge and write a shadow register in the secondary bridge. Finally, registers are provided that exist as read/write registers in the secondary side of the bridge and use a shadow register in the primary side of the bridge. According to one specific implementation, two separate locations are provided on a laptop and a docking station.
According to one aspect of the invention, a computer system includes a host processor, a first PCI bus, a second PCI bus and a PCI to-PCI bridge. The first PCI bus is coupled with the host processor. The PCI-to-PCI bridge interconnects the first and second PCI buses. The PCI-to-PCI bridge includes a first portion and a second portion. The first portion includes a first configuration register and the second portion includes a second configuration register.
According to another aspect of the invention, a bridge is provided that couples between a first bus and a second bus. The bridge includes a first bridge portion, a second bridge portion and a connector. The first bridge portion has a first configuration register, and the second bridge portion has a second configuration register. The connector removably couples together the first bridge portion and the second bridge portion.
According to even another aspect of the invention, a computer system includes a notebook computer, a docking station, and a bus bridge. The notebook computer has a first PCI bus, and the docking station has a second PCI bus. The bus bridge is coupled between the first PCI bus and the second PCI bus. The bus bridge includes a first configuration register, a second configuration register, and a connector provided between the first configuration register and the second configuration register. The connector is operative to removably mate/demate the first PCI bus and the second PCI bus when mating/demating the notebook computer and the docking station.
According to yet another aspect of the invention, a method is provided for mating a first PCI bus with a second PCI bus. The first PCI bus is provided by a first agent and the second PCI bus is provided by a second agent. The method includes the steps of: providing a bus bridge having a first portion, a second portion and a connector configured to removably mate together the first portion and the second portion; and removably mating together the first PCI bus and the second PCI bus by coupling together the first portion and the second portion with the connector.
One advantage is provided by the ability to physically separate a pair of PCI buses which facilitates implementation between two separate locations that are capable of being physically separated.